package com.probox.common.entity.service.platfom;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.common.entity.domain.platfom.PlatformPageConfig;
import com.probox.common.entity.domain.platfom.vo.ConfigVo;
import com.probox.common.entity.domain.platfom.vo.UseTypeVo;
import com.probox.common.entity.domain.platfom.vo.api.PlatformPageVo;
import com.probox.common.entity.domain.platfom.vo.api.PlatformTemplateView;

/**
 * 模板或店铺页面配置Service接口
 *
 *
 * @date 2021-06-10
 */
public interface IPlatformPageConfigService extends IService<PlatformPageConfig> {


    /**
     * 查询模板或店铺页面配置
     *
     * @param pageUid 模板或店铺页面配置ID
     * @return 模板或店铺页面配置
     */
    public PlatformPageConfig selectPlatformPageConfigById(Long pageUid);


    /**
     * 查询模板或店铺页面配置列表
     *
     * @param platformPageConfig 模板或店铺页面配置
     * @return 模板或店铺页面配置集合
     */
    public List<PlatformPageConfig> queryList(PlatformPageConfig platformPageConfig);


    /**
     * 新增模板或店铺页面配置
     *
     * @param platformTemplateView 模板信息
     * @return 结果
     */
    public void insertPlatformPageConfig(PlatformTemplateView platformTemplateView);

    /**
     * 修改页面配置信息
     *
     * @param view
     */
    public void updatePlatformPageConfig(PlatformTemplateView view);



    /**
     * 复制模板页面数据
     *
     * @param view
     * @param templateId 要复制给谁的id
     */
    public void copyPlatformPageConfig(PlatformTemplateView view, Long templateId);

    /**
     *
     * @param platformPageConfig
     * @return
     */
    public List<PlatformPageVo> getPlatformPageVoList(PlatformPageConfig platformPageConfig, Long platformUid, UseTypeVo useTypeVo);

    public PlatformPageConfig getTemplatePage(Long uid);

    /**
     *  获取各种页面的在线配置
     * @param configVo
     * @return
     */
    public List<PlatformPageVo> getOnlinePageVoList(ConfigVo configVo);

    /**
     * 修改状态
     * @param templateId
     * @param dataStatus
     * @param platformUid
     * @param unTemplateUid
     */
    public void removeComponent(Long templateId,String dataStatus,Long platformUid, Long unTemplateUid, List<Long> aLongs);


    /**
     * 校验是否有发布的版本
     * @param configVo
     * @return
     */
    public boolean checkOnLive(ConfigVo configVo);

    /**
     * 获取上一次发布的模板
     * @param templateUid
     * @return
     */
    public Long getOnTine(Long templateUid);
}
